1. Technical Field
The present invention relates generally to power/performance measurement and management in processing systems, and more particularly, to an estimation scheme that can estimate processor utilization from power measurements.
2. Description of the Related Art
Power management in both large and small scale systems has become a necessity, for reason of both thermal management and power cost and power availability. In particular, very large scale systems may not be installed or fabricated with enough power availability or thermal handling capability to run all processors in the system at their maximum performance levels continuously. Nor is such use typically desirable. Further, under power supply fault conditions, it is possible to continue operating at a lower power level when multiple power supplies are available and one of them has failed. Power management can then provide a mechanism for most effectively handling the processing loads under such less-than-ideal power availability conditions.
Sophisticated power management systems generally calculate the expected utilization of each processor and set the frequency (and optionally the voltage) of each processor at the bare minimum to accomplish the tasks required for a given workload. However, such power management systems require operating system resources and installation of special software for determining the workloads and the processing needs. The software is typically operating system dependent, and therefore must be provided for each possible operating system that may be executed on the platform. The resources used to manage the processors' frequency and voltage must be limited to small portion of the system processing requirements, or the purpose of power management is defeated by consuming resources just for power management. As such, the response time must also necessarily be limited, as providing finer processor utilization measurement granularity raises the amount of power management overhead. The impact of the power management overhead is also greatest at the lowest levels of processor utilization and typically sets the baseline processor utilization value, as the power management tasks may be the only executing task, when all application and other operating system threads are in a hold state. Further, such information is not typically available during boot and shutdown time, as well as during maintenance operations, since the driver used to monitor processor utilization is typically not loaded at under these circumstances.
Large-scale multi-module server rack systems typically include a service processor in each module, or sometimes associated with each processor that performs management tasks under control of a hypervisor. At present, and as described in the above-incorporated U.S. patent applications, the service processor is sometimes used to inform the operating systems of power consumption information that is used as part of the processor utilization computation. The service processor is also generally responsible for managing the power management state changes, e.g., selecting the operating frequency and voltage of each associated processors. However, the service processor does not typically perform the processor utilization computations alone, because such computations require knowledge of the operating system and application activity within the operating system environment. Service processor workloads do not typically impact the performance of the application processors and operating system environments, and also typically do not substantially affect the system energy consumption, other than by adjusting the performance level of the application processors. Therefore performing tasks in the service processor is desirable, if the tasks can be handled by the service processor and there is sufficient information readily available to the service processor.
It is therefore desirable to provide a method and system for estimating processor utilization while adding no or little additional overhead to the application processors, workloads. It would further be desirable to perform such tasks using the service processors, so that power management control can be performed completely out-of-band of the application and operating system environment.